[PATCH v4 00/23] ethdev: refactor remaining uses of flow director
Bruce Richardson
bruce.richardson at intel.com
Thu Sep 3 12:57:37 CEST 2026
On Wed, Aug 05, 2026 at 10:08:54PM -0700, Stephen Hemminger wrote:
> The original flow support in DPDK was Intel-specific and built around
> the flow director feature. It was superseded by the generic rte_flow
> API introduced in the 17.02 release. The direct API calls to flow
> director were removed in 20.11, but the data structures were never
> removed and drivers still use them. Some Intel drivers also carry
> driver-specific APIs related to flow director.
>
> These vestiges mean applications can still see flow director data
> structures, since rte_ethdev.h pulls in rte_eth_ctrl.h. It also means
> several drivers and libraries have come to depend on network header
> definitions arriving indirectly.
>
> Since drivers still need these definitions, rte_eth_ctrl.h is renamed
> to ethdev_fdir.h and the remaining bits in ethdev_driver.h are folded
> into it. This is a driver SDK header, not public API, and exists only
> so that drivers still carrying legacy flow director state have
> somewhere to get these definitions. New drivers should not use it.
>
> Applications relying on the indirect includes will need to add explicit
> ones; this is a source level change only, with no ABI impact. The fdir
> option of the testpmd "show port" and "clear port" commands is also
> removed.
>
> v4 - fix AI review comments
> - fix build of enetfec
> - cleanup more leftovers from flow director in testpmd
>
> Stephen Hemminger (23):
> drivers/net: remove unused include in dpaa and dpaa2
> ethdev: use DPDK byte order conversion
> net/ixgbe: remove experimental FDIR API
> net/i40e: remove experimental FDIR API
> app/testpmd: remove support for flow director
> app/testpmd: move str_to_flowtype to i40e
> app/test: include headers directly
> gro: include headers directly
> crypto/dpaa_sec: include UDP header
> net/gve: include UDP, SCTP and TCP headers
> net/nfp: break implicit dependency on rte_eth_ctrl.h
> net/mana: include used network headers
> node: get UDP header
> net/rnp: include network headers
> net/r8169: get network headers
> net/ngbe: include network protocol headers
> examples: include network headers
> net/mlx5: include rte_flow as needed
> net/sfc: include rte_flow
> net/intel/common: include network headers
> net/enetfec: add missing sys/types.h include
> ethdev, drivers: isolate flow director
> doc: add release note about rte_ethdev changes
>
I think this patchset needs to be split up, as many patches have no
relevance to flow director that I can see. The various patches cleaning up
header includes should be in one patchset. The byte order conversion change
probably belongs as a standalone patch, and then the actual fdir changes go
as a final patchset.
/Bruce
More information about the dev
mailing list