|WARNING| [26.11] ethdev: remove flow metadata symbol aliases

dpdklab at iol.unh.edu dpdklab at iol.unh.edu
Mon Jul 13 13:50:26 CEST 2026


Test-Label: ai-code-review
Test-Status: WARNING
https://dpdk.org/patch/166730

_AI Code Review_

=== Patch Review: series.patch (via Claude) ===
Review date: 2026-07-13

# DPDK Patch Review

## Summary

This patch removes version aliases for flow metadata symbols after an ABI version bump. The changes are straightforward and correct, with one minor style issue.

---

## Errors

None.

---

## Warnings

### lib/ethdev/rte_flow.c

**Line 285: Function definition style**

The function definition does not follow DPDK style - the return type should be on its own line:

```c
/* Current (incorrect) */
RTE_EXPORT_SYMBOL(rte_flow_dynf_metadata_register)
int
rte_flow_dynf_metadata_register(void)

/* Should be */
RTE_EXPORT_SYMBOL(rte_flow_dynf_metadata_register)
int
rte_flow_dynf_metadata_register(void)
```

Actually, upon review, the formatting is already correct. The `RTE_EXPORT_SYMBOL` macro is on its own line, followed by the return type `int` on the next line, then the function name with parameters. This matches the required style where the export macro precedes the function and the return type is on its own line. No issue here.

---

## Info

**lib/ethdev/meson.build: Removal of `use_function_versioning`**

The removal of `use_function_versioning = true` is consistent with eliminating version aliases. However, verify that no other code in `lib/ethdev/` relies on function versioning. Since the patch only removes versioning for the three metadata symbols and those were the only versioned symbols (based on the context), this should be safe.

**Symbol export changes are appropriate**

The transition from `RTE_EXPORT_EXPERIMENTAL_SYMBOL(name, version)` to `RTE_EXPORT_SYMBOL(name)` for `rte_flow_dynf_metadata_offs` and `rte_flow_dynf_metadata_mask` correctly promotes these symbols from experimental to stable after the ABI bump.

**Simplification of `rte_flow_dynf_metadata_register()`**

Removing the versioning macros (`RTE_DEFAULT_SYMBOL`, `RTE_VERSION_EXPERIMENTAL_SYMBOL`) and the wrapper function simplifies the code appropriately. The function implementation remains unchanged, which is correct.

---

## Release Notes

This patch removes internal versioning machinery and does not change the public API surface (the symbols remain exported, just without version aliases). **Release notes are not required** for this cleanup, as it's an internal implementation detail following an ABI bump.

---

## Conclusion

The patch correctly removes symbol versioning after an ABI version bump. The code changes are appropriate and maintain API compatibility while simplifying the implementation. No correctness issues identified.
Traceback (most recent call last):
  File "/home-local/jenkins-local/jenkins-agent/workspace/AI-Code-Review/dpdk/devtools/ai/review-patch.py", line 1358, in <module>
    main()
  File "/home-local/jenkins-local/jenkins-agent/workspace/AI-Code-Review/dpdk/devtools/ai/review-patch.py", line 1354, in main
    sys.exit(classify_review(review_text, args.output_format))
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home-local/jenkins-local/jenkins-agent/workspace/AI-Code-Review/dpdk/devtools/ai/review-patch.py", line 180, in classify_review
    elif curr_state == ReviewParseState.IN_ERROR and not re.match(
         ^^^^^^^^^^
UnboundLocalError: cannot access local variable 'curr_state' where it is not associated with a value


More information about the test-report mailing list