ethdev: add IPv4/IPv6 ECN header rewrite action
authorJiawei Wang <jiaweiw@nvidia.com>
Sat, 2 Apr 2022 07:11:47 +0000 (10:11 +0300)
committerFerruh Yigit <ferruh.yigit@xilinx.com>
Thu, 2 Jun 2022 09:58:38 +0000 (11:58 +0200)
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 <jiaweiw@nvidia.com>
Acked-by: Ori Kam <orika@nvidia.com>
app/test-pmd/cmdline_flow.c
lib/ethdev/rte_flow.h

index 4adeeaa..cfd55c5 100644 (file)
@@ -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. */
index d8827dd..1b56f23 100644 (file)
@@ -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. */
 };
 
 /**