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

Reply via email to