|WARNING| [v4,23/23] doc: add release note about rte_ethdev changes

dpdklab at iol.unh.edu dpdklab at iol.unh.edu
Thu Aug 6 07:37:56 CEST 2026


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

_AI Code Review_

=== Patch Review: series.patch (via Claude) ===
Review date: 2026-08-06

# DPDK Patch Review: series.patch

## Summary
This 23-patch series removes the deprecated Flow Director API and cleans up header dependencies in `rte_ethdev.h`. The series is well-structured, with patches building incrementally toward the final goal. Most patches are straightforward removals or include fixups. Below are findings organized by severity.

---

## Errors

None.

---

## Warnings

### Patch 01/23: drivers/net: remove unused include in dpaa and dpaa2
**Info**: The removed `#include <rte_eth_ctrl.h>` is correct -- neither `dpaa_ptp.c` nor `dpaa2_ptp.c` uses flow director or filter structures.

### Patch 02/23: ethdev: use DPDK byte order conversion
**Info**: Replacing `ntohl()` with `rte_be_to_cpu_32()` is correct. The patch also adds `#include <rte_byteorder.h>`, which is appropriate.

### Patch 03/23: net/ixgbe: remove experimental FDIR API
**Warning**: The patch removes `ixgbe_fdir_info_get()` and `ixgbe_fdir_stats_get()` from `ixgbe_ethdev.h` but those functions are only declared, not defined in the header. The actual definitions removed from `ixgbe_fdir.c` are correct. The removal of the PMD-specific exports is appropriate for deprecated experimental API.

**Note**: The `RTE_EXPORT_EXPERIMENTAL_SYMBOL` macro usage in `rte_pmd_ixgbe.c` is being removed. This is correct -- the functions are no longer exported.

### Patch 04/23: net/i40e: remove experimental FDIR API
**Warning**: Similar to patch 03, the declarations removed from `i40e_ethdev.h` match the definitions removed from `i40e_fdir.c`. The documentation update in `doc/guides/nics/i40e.rst` correctly removes the FDIR info/stats display example that depended on the removed testpmd command.

### Patch 05/23: app/testpmd: remove support for flow director
**Info**: The removal of `show port fdir` and `clear port fdir` commands is consistent with the API removal in patches 03/04. The documentation changes in `testpmd_funcs.rst` and `intro.rst` correctly reflect that FDIR is no longer accessible via testpmd CLI. The removal of `fdir_get_infos()` from `config.c` and `testpmd.h` is correct.

### Patch 06/23: app/testpmd: move str_to_flowtype to i40e
**Info**: The move of `str_to_flowtype()` and `flowtype_str_table[]` from `config.c` to `i40e_testpmd.c` is correct -- only the i40e internal command uses it. The function is now static in the driver-specific file, which is appropriate.

### Patch 07/23: app/test: include headers directly
**Info**: The added includes in `test_bpf.c` (iwyu-based), `test_security_inline_macsec.c`, and `test_security_inline_proto.c` are appropriate. Replacing `htons()` with `rte_cpu_to_be_16()` in `test_bpf.c` is consistent with DPDK coding style.

### Patch 08/23: gro: include headers directly
**Info**: The includes added to `gro_tcp4.c`, `gro_tcp6.c`, `gro_vxlan_tcp4.c`, `gro_vxlan_udp4.c`, and `rte_gro.c` are correct. The removal of `#include <rte_ethdev.h>` in these files is justified as they do not use ethdev API directly.

### Patch 09/23: crypto/dpaa_sec: include UDP header
**Info**: Adding `#include <rte_udp.h>` to `dpaa_sec.h` is correct.

### Patch 10/23: net/gve: include UDP, SCTP and TCP headers
**Info**: The includes added to `gve_ethdev.h` are appropriate. The use of iwyu is mentioned, which ensures completeness.

**Reviewed-by** tag is present, which is good.

### Patch 11/23: net/nfp: break implicit dependency on rte_eth_ctrl.h
**Info**: Replacing use of `UINT64_BIT` (from deprecated `rte_eth_ctrl.h`) with a local `NFP_UINT64_BIT` macro is correct. Adding `#include <rte_flow.h>` to `nfp_net_common.h` is appropriate.

### Patch 12/23: net/mana: include used network headers
**Info**: The extensive include list in `mana.c` and the additions to `tx.c` are appropriate. The use of iwyu is mentioned.

**Reviewed-by** tag is present.

### Patch 13/23: node: get UDP header
**Info**: The include updates in `lib/node/udp4_input.c` are appropriate. The removal of `<arpa/inet.h>` and `<sys/socket.h>` is fine as they are not needed after switching to DPDK headers.

### Patch 14/23: net/rnp: include network headers
**Info**: The includes added to `rnp_rxtx.c` are appropriate.

### Patch 15/23: net/r8169: get network headers
**Info**: The extensive include list in `r8169_rxtx.c` is appropriate. The replacement of `ntohs()` with `rte_be_to_cpu_16()` is correct.

### Patch 16/23: net/ngbe: include network protocol headers
**Info**: The includes added to `ngbe_rxtx.c` are appropriate.

### Patch 17/23: examples: include network headers
**Info**: The includes added to `l2fwd-macsec/main.c`, `l3fwd-graph/main.c`, and `l3fwd/l3fwd.h` are appropriate.

### Patch 18/23: net/mlx5: include rte_flow as needed
**Info**: The includes added to mlx5 driver files are appropriate.

### Patch 19/23: net/sfc: include rte_flow
**Info**: Adding `#include <rte_flow.h>` to `sfc_dp.c` is appropriate.

### Patch 20/23: net/intel/common: include network headers
**Info**: The includes added to `tx_scalar.h` are appropriate.

### Patch 21/23: net/enetfec: add missing sys/types.h include
**Warning**: The patch correctly identifies the dependency on BSD types (`uint`, `ushort`) previously provided by the indirect inclusion chain. Adding `#include <sys/types.h>` to `enet_regs.h` is the correct fix.

**Note**: While `sys/types.h` provides BSD types on most systems, the long-term solution would be to replace `uint` and `ushort` with standard `unsigned int` and `unsigned short`. However, this patch is a minimal fix, which is appropriate for this series.

### Patch 22/23: ethdev, drivers: isolate flow director
**Warning**: The move of flow director structures from `rte_eth_ctrl.h` and `ethdev_driver.h` to a new `ethdev_fdir.h` is well-executed. The new header is driver SDK only, which is appropriate.

**Good**: The removal of `rte_eth_ctrl.h` from installed headers (`meson.build`) and the addition of `ethdev_fdir.h` to `driver_sdk_headers` is correct.

**Good**: The changes to `rte_ethdev.h` -- removing the `#include "rte_eth_ctrl.h"` and adding direct includes of `<rte_ether.h>` and `<rte_mbuf_history.h>` -- are correct.

**Good**: Each driver that uses FDIR now includes `<ethdev_fdir.h>` directly. The list of drivers is comprehensive (hinic, hinic3, cpfl, e1000, igc, i40e, iavf, ice, ipn3ke, ixgbe, nbl, txgbe).

**Note**: The removal of `#ifdef __cplusplus` blocks around the `#include "rte_eth_ctrl.h"` in `rte_ethdev.h` is fine -- that was only needed for the old inclusion.

### Patch 23/23: doc: add release note about rte_ethdev changes
**Info**: The release notes correctly document:
- Removal of experimental FDIR APIs in ixgbe and i40e.
- Removal of testpmd `fdir` commands.
- Removal of `rte_eth_ctrl.h` from public API.
- API changes: `rte_ethdev.h` no longer includes `rte_flow.h` or network headers indirectly.

**Good**: The note clearly states what applications may need to do (include headers directly).

---

## Info

### General
**Good**: The series is well-structured, with each patch doing one thing clearly. The commit messages are concise and accurate.

**Good**: The series correctly identifies the deprecation of Flow Director API and removes it without breaking the build (each patch compiles independently, as claimed).

**Good**: The use of `iwyu` (include-what-you-use) in several patches ensures the new include lists are complete.

---

## Final Check

### Pass 1: Correctness bugs
No correctness bugs identified. The patches are mechanical removals and include fixups with no runtime behavior changes.

### Pass 2: Style/Process false positives
None. All items flagged are legitimate or informational.

---

## Conclusion

This is a clean series. The removal of the deprecated Flow Director API is thorough, and the header dependency cleanup is well-executed. No errors found. The warnings are informational -- noting that the changes are correct and the approach is sound.

**Recommendation**: Acceptable for merge.


More information about the test-report mailing list