ethdev: add IPv4/IPv6 ECN header rewrite action

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>
This commit is contained in:
Jiawei Wang 2022-04-02 10:11:47 +03:00 committed by Ferruh Yigit
parent ea6101a8e4
commit c4e442fa4c
2 changed files with 4 additions and 1 deletions

View File

@ -795,7 +795,8 @@ static const char *const modify_field_ids[] = {
"tcp_seq_num", "tcp_ack_num", "tcp_flags", "tcp_seq_num", "tcp_ack_num", "tcp_flags",
"udp_port_src", "udp_port_dst", "udp_port_src", "udp_port_dst",
"vxlan_vni", "geneve_vni", "gtp_teid", "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. */ /** Maximum number of subsequent tokens and arguments on the stack. */

View File

@ -3690,6 +3690,8 @@ enum rte_flow_field_id {
RTE_FLOW_FIELD_META, /**< Metadata value. */ RTE_FLOW_FIELD_META, /**< Metadata value. */
RTE_FLOW_FIELD_POINTER, /**< Memory pointer. */ RTE_FLOW_FIELD_POINTER, /**< Memory pointer. */
RTE_FLOW_FIELD_VALUE, /**< Immediate value. */ RTE_FLOW_FIELD_VALUE, /**< Immediate value. */
RTE_FLOW_FIELD_IPV4_ECN, /**< IPv4 ECN. */
RTE_FLOW_FIELD_IPV6_ECN, /**< IPv6 ECN. */
}; };
/** /**