|SUCCESS| [v2] ethdev: promote flow metadata APIs to stable

dpdklab at iol.unh.edu dpdklab at iol.unh.edu
Sat May 30 01:36:49 CEST 2026


Test-Label: ai-code-review
Test-Status: SUCCESS
https://dpdk.org/patch/164559

_AI Code Review_

=== Patch Review: series.patch (via Claude) ===
Review date: 2026-05-29

I'll review this DPDK patch against the guidelines in AGENTS.md.

Commit: (from patch metadata)
Author: Dariusz Sosnowski <dsosnowski at nvidia.com>
Subject: [PATCH v2] ethdev: promote flow metadata APIs to stable

This patch promotes experimental flow metadata APIs to stable status by
removing __rte_experimental markers and changing RTE_EXPORT_EXPERIMENTAL_SYMBOL
to RTE_EXPORT_SYMBOL for three symbols that have been unchanged since v19.11
(except for a type change in v20.05).

> diff --git a/doc/guides/rel_notes/release_26_07.rst b/doc/guides/rel_notes/release_26_07.rst
> index 8b4f8401e2..6eba91a5e9 100644
> --- a/doc/guides/rel_notes/release_26_07.rst
> +++ b/doc/guides/rel_notes/release_26_07.rst

[ ... ]

> +* **ethdev: promoted flow metadata APIs from experimental to stable.**
> +
> +  The following ethdev APIs and symbols are no longer marked experimental:
> +
> +  - ``rte_flow_dynf_metadata_register``
> +  - ``rte_flow_dynf_metadata_offs``
> +  - ``rte_flow_dynf_metadata_mask``
> +  - ``rte_flow_dynf_metadata_avail``
> +  - ``rte_flow_dynf_metadata_get``
> +  - ``rte_flow_dynf_metadata_set``
> +

Does this documentation need to specify the initial release when these
symbols were introduced as experimental (v19.11) and mention the type
change that occurred in v20.05 for rte_flow_dynf_metadata_offs? The
commit message includes this information, but should users reading the
release notes also have access to this historical context?

> diff --git a/lib/ethdev/rte_flow.c b/lib/ethdev/rte_flow.c
> index 7a51b667cf..ec0fe08355 100644
> --- a/lib/ethdev/rte_flow.c
> +++ b/lib/ethdev/rte_flow.c

[ ... ]

> -RTE_EXPORT_EXPERIMENTAL_SYMBOL(rte_flow_dynf_metadata_offs, 19.11)
> +RTE_EXPORT_SYMBOL(rte_flow_dynf_metadata_offs)
>  int32_t rte_flow_dynf_metadata_offs = -1;
>  
>  /* Mbuf dynamic field flag bit number for metadata. */
> -RTE_EXPORT_EXPERIMENTAL_SYMBOL(rte_flow_dynf_metadata_mask, 19.11)
> +RTE_EXPORT_SYMBOL(rte_flow_dynf_metadata_mask)
>  uint64_t rte_flow_dynf_metadata_mask;

Does removing the version argument (19.11) from these export macros have
any implications for version tracking or compatibility? While
RTE_EXPORT_SYMBOL may not require this parameter, is there value in
preserving the historical version information elsewhere for maintainability?

> -RTE_EXPORT_EXPERIMENTAL_SYMBOL(rte_flow_dynf_metadata_register, 19.11)
> +RTE_EXPORT_SYMBOL(rte_flow_dynf_metadata_register)
>  int
>  rte_flow_dynf_metadata_register(void)
>  {

> diff --git a/lib/ethdev/rte_flow.h b/lib/ethdev/rte_flow.h
> index ba3bcc89a3..0c6d42c0d8 100644
> --- a/lib/ethdev/rte_flow.h
> +++ b/lib/ethdev/rte_flow.h

[ ... ]

> -__rte_experimental
>  static inline uint32_t
>  rte_flow_dynf_metadata_get(struct rte_mbuf *m)
>  {
>  	return *RTE_FLOW_DYNF_METADATA(m);
>  }
>  
> -__rte_experimental
>  static inline void
>  rte_flow_dynf_metadata_set(struct rte_mbuf *m, uint32_t v)
>  {

[ ... ]

> -__rte_experimental
>  static inline int
>  rte_flow_dynf_metadata_avail(void)
>  {

[ ... ]

> -__rte_experimental
>  int
>  rte_flow_dynf_metadata_register(void);

The patch appears mechanically correct in removing experimental markers.
However, does lib/ethdev/version.map need to be updated to move these
symbols from the EXPERIMENTAL section to the appropriate versioned
section? Typically DPDK requires symbol versioning updates when promoting
APIs from experimental to stable status.


More information about the test-report mailing list