DPDK-dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 00/22] ethdev: clean up legacy flow director
@ 2026-08-03 16:51 Stephen Hemminger
  2026-08-03 16:51 ` [PATCH v2 01/22] drivers/net: remove unused include in dpaa Stephen Hemminger
                   ` (23 more replies)
  0 siblings, 24 replies; 76+ messages in thread
From: Stephen Hemminger @ 2026-08-03 16:51 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger

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.

There is more to do here, but with no Intel hardware and no standalone
tests for this code, I have kept to mechanical refactoring.

v2:
- fix enetfec driver not built on x86
- reword commit messages based on AI review

Stephen Hemminger (22):
  drivers/net: remove unused include in dpaa
  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
  net/gve: include IP, UDP and TCP headers
  crypto/dpaa_sec: include UDP header
  net/nfp: break implicit dependency on rte_eth_ctrl.h
  net/mana: include used network headers
  gro: include headers directly
  app/test: include headers directly
  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

 app/test-eventdev/test_pipeline_common.h      |   1 +
 app/test-pmd/cmdline.c                        |  21 +--
 app/test-pmd/config.c                         | 163 ------------------
 app/test-pmd/testpmd.h                        |   3 -
 app/test/test_bpf.c                           |  18 +-
 app/test/test_security_inline_macsec.c        |   2 +
 app/test/test_security_inline_proto.c         |   1 +
 doc/api/doxy-api-index.md                     |   1 -
 doc/guides/rel_notes/release_26_11.rst        |  19 ++
 doc/guides/testpmd_app_ug/testpmd_funcs.rst   |  36 ----
 drivers/crypto/dpaa_sec/dpaa_sec.h            |   2 +
 drivers/net/dpaa/dpaa_ptp.c                   |   1 -
 drivers/net/dpaa2/dpaa2_ptp.c                 |   1 -
 drivers/net/enetfec/enet_regs.h               |   2 +
 drivers/net/gve/gve_ethdev.h                  |   3 +
 drivers/net/hinic/hinic_pmd_ethdev.h          |   2 +
 drivers/net/hinic3/hinic3_ethdev.h            |   1 +
 drivers/net/intel/common/tx_scalar.h          |   3 +
 drivers/net/intel/cpfl/cpfl_flow_engine_fxp.c |   2 +-
 drivers/net/intel/e1000/e1000_ethdev.h        |   1 +
 drivers/net/intel/e1000/igc_filter.h          |   2 +-
 drivers/net/intel/i40e/i40e_ethdev.c          |   4 +-
 drivers/net/intel/i40e/i40e_ethdev.h          |   5 +-
 drivers/net/intel/i40e/i40e_fdir.c            | 140 ---------------
 drivers/net/intel/i40e/i40e_flow.c            |   3 +-
 drivers/net/intel/i40e/rte_pmd_i40e.c         |  34 ----
 drivers/net/intel/i40e/rte_pmd_i40e.h         |  33 ----
 drivers/net/intel/iavf/iavf_fsub.c            |   2 +-
 drivers/net/intel/iavf/iavf_hash.c            |   2 +-
 drivers/net/intel/ice/ice_acl_filter.c        |   2 +-
 drivers/net/intel/ice/ice_ethdev.h            |   2 +
 drivers/net/intel/ice/ice_generic_flow.c      |   1 +
 drivers/net/intel/ice/ice_hash.c              |   2 +-
 drivers/net/intel/ice/ice_switch_filter.c     |   2 +-
 drivers/net/intel/ipn3ke/ipn3ke_flow.c        |   2 +-
 drivers/net/intel/ixgbe/ixgbe_ethdev.h        |   6 +-
 drivers/net/intel/ixgbe/ixgbe_fdir.c          | 117 -------------
 drivers/net/intel/ixgbe/rte_pmd_ixgbe.c       |  34 ----
 drivers/net/intel/ixgbe/rte_pmd_ixgbe.h       |  32 ----
 drivers/net/mana/mana.c                       |   2 +
 drivers/net/mana/tx.c                         |   3 +
 drivers/net/mlx5/mlx5_ethdev.c                |   1 +
 drivers/net/mlx5/mlx5_flow.h                  |   1 +
 drivers/net/mlx5/mlx5_txq.c                   |   1 +
 drivers/net/mlx5/mlx5_utils.c                 |   1 +
 drivers/net/mlx5/mlx5_utils.h                 |   1 +
 drivers/net/nbl/nbl_include/nbl_include.h     |   1 +
 drivers/net/nfp/nfp_ethdev.c                  |   6 +-
 drivers/net/nfp/nfp_net_common.h              |   1 +
 drivers/net/ngbe/ngbe_rxtx.c                  |   4 +
 drivers/net/r8169/r8169_rxtx.c                |   3 +
 drivers/net/rnp/rnp_rxtx.c                    |   6 +
 drivers/net/sfc/sfc_dp.c                      |   1 +
 drivers/net/txgbe/txgbe_ethdev.h              |   1 +
 examples/l2fwd-macsec/main.c                  |   2 +
 examples/l3fwd-graph/main.c                   |   1 +
 examples/l3fwd/l3fwd.h                        |   2 +
 lib/ethdev/ethdev_driver.h                    |  36 ----
 lib/ethdev/{rte_eth_ctrl.h => ethdev_fdir.h}  |  58 +++++--
 lib/ethdev/meson.build                        |   2 +-
 lib/ethdev/rte_ethdev.h                       |  13 +-
 lib/ethdev/sff_8472.c                         |   3 +-
 lib/gro/gro_tcp4.c                            |   1 +
 lib/gro/gro_vxlan_tcp4.c                      |   4 +-
 lib/gro/gro_vxlan_udp4.c                      |   1 +
 lib/gro/rte_gro.c                             |   1 +
 lib/node/udp4_input.c                         |   1 +
 67 files changed, 165 insertions(+), 701 deletions(-)
 rename lib/ethdev/{rte_eth_ctrl.h => ethdev_fdir.h} (91%)

-- 
2.53.0


^ permalink raw reply	[flat|nested] 76+ messages in thread

end of thread, other threads:[~2026-08-06  6:13 UTC | newest]

Thread overview: 76+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-03 16:51 [PATCH v2 00/22] ethdev: clean up legacy flow director Stephen Hemminger
2026-08-03 16:51 ` [PATCH v2 01/22] drivers/net: remove unused include in dpaa Stephen Hemminger
2026-08-03 16:51 ` [PATCH v2 02/22] ethdev: use DPDK byte order conversion Stephen Hemminger
2026-08-03 16:51 ` [PATCH v2 03/22] net/ixgbe: remove experimental FDIR API Stephen Hemminger
2026-08-03 16:51 ` [PATCH v2 04/22] net/i40e: " Stephen Hemminger
2026-08-03 16:51 ` [PATCH v2 05/22] app/testpmd: remove support for flow director Stephen Hemminger
2026-08-03 16:51 ` [PATCH v2 06/22] net/gve: include IP, UDP and TCP headers Stephen Hemminger
2026-08-03 18:04   ` Joshua Washington
2026-08-03 16:51 ` [PATCH v2 07/22] crypto/dpaa_sec: include UDP header Stephen Hemminger
2026-08-03 16:51 ` [PATCH v2 08/22] net/nfp: break implicit dependency on rte_eth_ctrl.h Stephen Hemminger
2026-08-03 16:51 ` [PATCH v2 09/22] net/mana: include used network headers Stephen Hemminger
2026-08-03 17:09   ` [EXTERNAL] " Long Li
2026-08-03 16:51 ` [PATCH v2 10/22] gro: include headers directly Stephen Hemminger
2026-08-03 16:51 ` [PATCH v2 11/22] app/test: " Stephen Hemminger
2026-08-03 16:51 ` [PATCH v2 12/22] node: get UDP header Stephen Hemminger
2026-08-03 16:51 ` [PATCH v2 13/22] net/rnp: include network headers Stephen Hemminger
2026-08-03 16:52 ` [PATCH v2 14/22] net/r8169: get " Stephen Hemminger
2026-08-03 16:52 ` [PATCH v2 15/22] net/ngbe: include network protocol headers Stephen Hemminger
2026-08-03 16:52 ` [PATCH v2 16/22] examples: include network headers Stephen Hemminger
2026-08-03 16:52 ` [PATCH v2 17/22] net/mlx5: include rte_flow as needed Stephen Hemminger
2026-08-03 16:52 ` [PATCH v2 18/22] net/sfc: include rte_flow Stephen Hemminger
2026-08-03 16:52 ` [PATCH v2 19/22] net/intel/common: include network headers Stephen Hemminger
2026-08-03 16:52 ` [PATCH v2 20/22] net/enetfec: add missing sys/types.h include Stephen Hemminger
2026-08-03 16:52 ` [PATCH v2 21/22] ethdev, drivers: isolate flow director Stephen Hemminger
2026-08-03 16:52 ` [PATCH v2 22/22] doc: add release note about rte_ethdev changes Stephen Hemminger
2026-08-04 15:44 ` [PATCH v3 00/23] ethdev: isolate legacy flow director Stephen Hemminger
2026-08-04 15:44   ` [PATCH v3 01/23] drivers/net: remove unused include in dpaa Stephen Hemminger
2026-08-04 15:44   ` [PATCH v3 02/23] ethdev: use DPDK byte order conversion Stephen Hemminger
2026-08-04 15:44   ` [PATCH v3 03/23] net/ixgbe: remove experimental FDIR API Stephen Hemminger
2026-08-04 15:44   ` [PATCH v3 04/23] net/i40e: " Stephen Hemminger
2026-08-04 15:44   ` [PATCH v3 05/23] app/testpmd: remove support for flow director Stephen Hemminger
2026-08-04 15:44   ` [PATCH v3 06/23] app/testpmd: move str_to_flowtype to i40e Stephen Hemminger
2026-08-04 15:44   ` [PATCH v3 07/23] app/test: include headers directly Stephen Hemminger
2026-08-04 15:53     ` Marat Khalili
2026-08-04 15:44   ` [PATCH v3 08/23] gro: " Stephen Hemminger
2026-08-04 15:44   ` [PATCH v3 09/23] crypto/dpaa_sec: include UDP header Stephen Hemminger
2026-08-04 15:44   ` [PATCH v3 10/23] net/gve: include UDP, SCTP and TCP headers Stephen Hemminger
2026-08-04 15:44   ` [PATCH v3 11/23] net/nfp: break implicit dependency on rte_eth_ctrl.h Stephen Hemminger
2026-08-04 15:45   ` [PATCH v3 12/23] net/mana: include used network headers Stephen Hemminger
2026-08-04 15:45   ` [PATCH v3 13/23] node: get UDP header Stephen Hemminger
2026-08-04 15:45   ` [PATCH v3 14/23] net/rnp: include network headers Stephen Hemminger
2026-08-04 15:45   ` [PATCH v3 15/23] net/r8169: get " Stephen Hemminger
2026-08-04 15:45   ` [PATCH v3 16/23] net/ngbe: include network protocol headers Stephen Hemminger
2026-08-04 15:45   ` [PATCH v3 17/23] examples: include network headers Stephen Hemminger
2026-08-04 15:45   ` [PATCH v3 18/23] net/mlx5: include rte_flow as needed Stephen Hemminger
2026-08-04 15:45   ` [PATCH v3 19/23] net/sfc: include rte_flow Stephen Hemminger
2026-08-04 15:45   ` [PATCH v3 20/23] net/intel/common: include network headers Stephen Hemminger
2026-08-04 15:45   ` [PATCH v3 21/23] net/enetfec: add missing sys/types.h include Stephen Hemminger
2026-08-04 15:45   ` [PATCH v3 22/23] ethdev, drivers: isolate flow director Stephen Hemminger
2026-08-04 15:45   ` [PATCH v3 23/23] doc: add release note about rte_ethdev changes Stephen Hemminger
2026-08-06  5:08 ` [PATCH v4 00/23] ethdev: refactor remaining uses of flow director Stephen Hemminger
2026-08-06  5:08   ` [PATCH v4 01/23] drivers/net: remove unused include in dpaa and dpaa2 Stephen Hemminger
2026-08-06  6:13     ` Hemant Agrawal
2026-08-06  5:08   ` [PATCH v4 02/23] ethdev: use DPDK byte order conversion Stephen Hemminger
2026-08-06  5:08   ` [PATCH v4 03/23] net/ixgbe: remove experimental FDIR API Stephen Hemminger
2026-08-06  5:08   ` [PATCH v4 04/23] net/i40e: " Stephen Hemminger
2026-08-06  5:08   ` [PATCH v4 05/23] app/testpmd: remove support for flow director Stephen Hemminger
2026-08-06  5:09   ` [PATCH v4 06/23] app/testpmd: move str_to_flowtype to i40e Stephen Hemminger
2026-08-06  5:09   ` [PATCH v4 07/23] app/test: include headers directly Stephen Hemminger
2026-08-06  5:09   ` [PATCH v4 08/23] gro: " Stephen Hemminger
2026-08-06  5:09   ` [PATCH v4 09/23] crypto/dpaa_sec: include UDP header Stephen Hemminger
2026-08-06  6:12     ` Hemant Agrawal
2026-08-06  5:09   ` [PATCH v4 10/23] net/gve: include UDP, SCTP and TCP headers Stephen Hemminger
2026-08-06  5:09   ` [PATCH v4 11/23] net/nfp: break implicit dependency on rte_eth_ctrl.h Stephen Hemminger
2026-08-06  5:09   ` [PATCH v4 12/23] net/mana: include used network headers Stephen Hemminger
2026-08-06  5:09   ` [PATCH v4 13/23] node: get UDP header Stephen Hemminger
2026-08-06  5:09   ` [PATCH v4 14/23] net/rnp: include network headers Stephen Hemminger
2026-08-06  5:09   ` [PATCH v4 15/23] net/r8169: get " Stephen Hemminger
2026-08-06  5:09   ` [PATCH v4 16/23] net/ngbe: include network protocol headers Stephen Hemminger
2026-08-06  5:09   ` [PATCH v4 17/23] examples: include network headers Stephen Hemminger
2026-08-06  5:09   ` [PATCH v4 18/23] net/mlx5: include rte_flow as needed Stephen Hemminger
2026-08-06  5:09   ` [PATCH v4 19/23] net/sfc: include rte_flow Stephen Hemminger
2026-08-06  5:09   ` [PATCH v4 20/23] net/intel/common: include network headers Stephen Hemminger
2026-08-06  5:09   ` [PATCH v4 21/23] net/enetfec: add missing sys/types.h include Stephen Hemminger
2026-08-06  5:09   ` [PATCH v4 22/23] ethdev, drivers: isolate flow director Stephen Hemminger
2026-08-06  5:09   ` [PATCH v4 23/23] doc: add release note about rte_ethdev changes Stephen Hemminger

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox