[PATCH v2 01/11] ethdev: add flex item modify field support

Andrew Rybchenko andrew.rybchenko at oktetlabs.ru
Fri Jan 20 10:07:31 CET 2023


On 1/19/23 07:58, Rongwei Liu wrote:
> Add flex item as modify field destination.
> Add "struct rte_flow_item_flex_handle *flex_handle" into
> "struct rte_flow_action_modify_data" as union with existed
> "level" member. This new member is dedicated for modifying
> flex item.
> 
> Add flex item modify field cmdline support. Now user can use
> testpmd cli to specify which flex item to be modified, either
> source or destination.
> 
> Syntax is as below:
> modify_field op set dst_type flex_item dst_level 0
> dst_offset 16 src_type value src_value 0x123456781020 width 8
> 
> Signed-off-by: Rongwei Liu <rongweil at nvidia.com>
> Acked-by: Ori Kam <orika at nvidia.com>

[snip]

> diff --git a/doc/guides/rel_notes/release_23_03.rst b/doc/guides/rel_notes/release_23_03.rst
> index b8c5b68d6c..c673205e5e 100644
> --- a/doc/guides/rel_notes/release_23_03.rst
> +++ b/doc/guides/rel_notes/release_23_03.rst
> @@ -56,6 +56,10 @@ New Features
>        =======================================================
>   
>   

It should be just one empty line here

> +* ethdev: added a new field:

"added a new field' is too generic.

> +
> +  - modify flex item: ``rte_flow_action_modify_data.flex_handle``
> +

And two empty lines here.

>   Removed Items
>   -------------
>   
> diff --git a/lib/ethdev/rte_flow.h b/lib/ethdev/rte_flow.h
> index b60987db4b..c66a65351d 100644
> --- a/lib/ethdev/rte_flow.h
> +++ b/lib/ethdev/rte_flow.h
> @@ -3528,6 +3528,7 @@ enum rte_flow_field_id {
>   	RTE_FLOW_FIELD_IPV6_ECN,	/**< IPv6 ECN. */
>   	RTE_FLOW_FIELD_GTP_PSC_QFI,	/**< GTP QFI. */
>   	RTE_FLOW_FIELD_METER_COLOR,	/**< Meter color marker. */
> +	RTE_FLOW_FIELD_FLEX_ITEM,	/**< Flex item. */
>   };
>   
>   /**
> @@ -3541,8 +3542,11 @@ struct rte_flow_action_modify_data {
>   	RTE_STD_C11
>   	union {
>   		struct {
> -			/** Encapsulation level or tag index. */
> -			uint32_t level;
> +			/**< Encapsulation level or tag index or flex item handle. */

Have you tried to generate documentation? If it is a union documentation 
it should be /**, not /**<.
In general, it is better to document union from overall
point of view. What is it logically? Do not define union
as just a union of its fields.

> +			union {
> +				uint32_t level;
> +				struct rte_flow_item_flex_handle *flex_handle;

Union items documentation missing.

> +			};
>   			/** Number of bits to skip from a field. */
>   			uint32_t offset;
>   		};



More information about the dev mailing list