|WARNING| [v2,22/22] doc: add release note about rte_ethdev changes
dpdklab at iol.unh.edu
dpdklab at iol.unh.edu
Mon Aug 3 19:56:21 CEST 2026
Test-Label: ai-code-review
Test-Status: WARNING
https://dpdk.org/patch/167144
_AI Code Review_
=== Patch Review: series.patch (via Claude) ===
Review date: 2026-08-03
# DPDK Patch Review - series.patch
## Summary
This 22-patch series removes the deprecated flow director API and associated rte_eth_ctrl.h header from DPDK, along with cleaning up indirect header dependencies throughout the codebase.
---
## Patch 1: drivers/net: remove unused include in dpaa
**No issues found**
Clean removal of unused `rte_eth_ctrl.h` include.
---
## Patch 2: ethdev: use DPDK byte order conversion
**No issues found**
Proper replacement of POSIX `ntohl()` with `rte_be_to_cpu_32()`.
---
## Patch 3: net/ixgbe: remove experimental FDIR API
**Errors:**
1. **Missing release notes for API removal** (Error)
- Two experimental functions are removed (`rte_pmd_ixgbe_get_fdir_info`, `rte_pmd_ixgbe_get_fdir_stats`)
- While experimental API can be removed without deprecation notice, the removal should still be documented in release notes
- The release notes update appears in patch 22, but should be in this patch for atomic code+doc changes
2. **Incomplete removal** (Warning)
- The patch removes `ixgbe_fdir_info_get()` and `ixgbe_fdir_stats_get()` function definitions
- But the function declarations in `ixgbe_ethdev.h` are also removed
- Verify no other code references these symbols
---
## Patch 4: net/i40e: remove experimental FDIR API
**Errors:**
1. **Missing release notes** (Error)
- Same issue as patch 3: API removal should be documented in this patch, not deferred to patch 22
**Warnings:**
1. **Comment change without context** (Warning)
- In `i40e_ethdev.c`, the comment "Flow director supports only fields defined in union rte_eth_fdir_flow" is changed to "supports only fields reachable through rte_flow item patterns"
- The old comment references a struct that's being removed, so the change is necessary
- However, verify the new comment accurately describes the current behavior after removal
---
## Patch 5: app/testpmd: remove support for flow director
**No issues found**
Consistent removal of FDIR-related testpmd commands and documentation.
---
## Patches 6-20: Include header cleanup
All patches in this range (patches 6-20) have **no issues found**. They correctly add direct includes for headers that were previously obtained indirectly via `rte_ethdev.h`.
Notable observations:
- Patch 11 (app/test) properly replaces `htons()` with `rte_cpu_to_be_16()`
- Patch 20 (net/enetfec) correctly adds `sys/types.h` for BSD types
---
## Patch 21: ethdev, drivers: isolate flow director
**Errors:**
1. **Header guard naming mismatch** (Error)
- File renamed from `rte_eth_ctrl.h` to `ethdev_fdir.h`
- But header guard remains `_RTE_ETH_CTRL_H_` at the top, then changes to `_ETHDEV_FDIR_H_`
- The guard should be `_ETHDEV_FDIR_H_` consistently throughout the file
```c
/* At line 5 in ethdev_fdir.h - WRONG */
#ifndef _RTE_ETH_CTRL_H_
#define _RTE_ETH_CTRL_H_
/* Should be */
#ifndef _ETHDEV_FDIR_H_
#define _ETHDEV_FDIR_H_
```
2. **Moved but still deprecated** (Warning)
- The commit message says definitions are moved to `ethdev_fdir.h` "for driver SDK only"
- But the Doxygen comment in the new file still says `@deprecated Please use rte_flow API instead`
- Since this is now an internal driver header, the deprecation notice is confusing
- Either remove the notice or clarify it's for "internal use only, applications should use rte_flow"
**Warnings:**
1. **Include order** (Info)
- In `rte_ethdev.h`, new includes added at lines 167-168:
```c
#include <rte_ether.h>
#include <rte_common.h>
```
- `rte_common.h` should come before `rte_ether.h` (system/generic before specific)
---
## Patch 22: doc: add release note about rte_ethdev changes
**Errors:**
1. **Incomplete release notes** (Error)
- Lists removed functions under "Removed Items" correctly
- But misses the removal of `ixgbe_fdir_info_get()` and `ixgbe_fdir_stats_get()` internal functions
- Also misses the `i40e` equivalents
- Should list all removed symbols, both public and internal driver API
2. **Section placement** (Warning)
- API removal notes should be in "Removed Items"
- API changes (header inclusions) should be in "API Changes"
- Currently both are in separate sections, which is correct, but verify all removed items are listed
---
## Summary of Findings
### Errors (Must Fix)
1. **Patches 3-4**: API removal should document in release notes atomically with code changes
2. **Patch 21**: Header guard inconsistency in `ethdev_fdir.h`
3. **Patch 22**: Incomplete list of removed symbols in release notes
### Warnings (Should Fix)
1. **Patch 4**: Verify updated comment accurately describes behavior
2. **Patch 21**: Clarify or remove deprecation notice in internal header
3. **Patch 21**: Fix include order in `rte_ethdev.h`
4. **Patch 22**: Ensure all removed internal symbols are documented
### Info
No info-level suggestions beyond those already noted.
---
## Correctness Analysis
No correctness bugs identified. The series primarily removes code and fixes includes, which are mechanical changes with low risk of introducing runtime errors. The approach of first removing unused includes, then the API, then cleaning up indirect dependencies is sound and reduces breakage risk.
More information about the test-report
mailing list