From: Jiawei Wang <jiaw...@nvidia.com>

This patch introduces the IPv4/IPv6 ECN modify field support, and
adds the testpmd CLI commands support.

Usage:
        modify_field op set dst_type ipv4_ecn src_type ...

For example:

flow create 0 ingress group 1 pattern eth / ipv4 /  end actions
        modify_field op set dst_type ipv4_ecn src_type value src_value
        0x03 width 2 / queue index 0 / end

Signed-off-by: Jiawei Wang <jiaw...@nvidia.com>
---
 app/test-pmd/cmdline_flow.c | 3 ++-
 lib/ethdev/rte_flow.h       | 2 ++
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c
index fc4a6d9cca..3250add834 100644
--- a/app/test-pmd/cmdline_flow.c
+++ b/app/test-pmd/cmdline_flow.c
@@ -795,7 +795,8 @@ static const char *const modify_field_ids[] = {
        "tcp_seq_num", "tcp_ack_num", "tcp_flags",
        "udp_port_src", "udp_port_dst",
        "vxlan_vni", "geneve_vni", "gtp_teid",
-       "tag", "mark", "meta", "pointer", "value", NULL
+       "tag", "mark", "meta", "pointer", "value",
+       "ipv4_ecn", "ipv6_ecn", NULL
 };
 
 /** Maximum number of subsequent tokens and arguments on the stack. */
diff --git a/lib/ethdev/rte_flow.h b/lib/ethdev/rte_flow.h
index d8827dd184..1b56f23cba 100644
--- a/lib/ethdev/rte_flow.h
+++ b/lib/ethdev/rte_flow.h
@@ -3690,6 +3690,8 @@ enum rte_flow_field_id {
        RTE_FLOW_FIELD_META,            /**< Metadata value. */
        RTE_FLOW_FIELD_POINTER,         /**< Memory pointer. */
        RTE_FLOW_FIELD_VALUE,           /**< Immediate value. */
+       RTE_FLOW_FIELD_IPV4_ECN,        /**< IPv4 ECN. */
+       RTE_FLOW_FIELD_IPV6_ECN,        /**< IPv6 ECN. */
 };
 
 /**
-- 
2.31.1

Reply via email to