ethdev: refactor remaining uses of flow director
Get series with b4
b4 am [email protected]Versions newest first · linked by author and title
- v4 Latest23 patches 15 repliesIn review
- v323 patches 1 replySuperseded
- v222 patches 2 repliesSuperseded
Earlier versions · 1
| Version | Posted | Patches | Replies | Status |
|---|---|---|---|---|
| v1 RFC | 21 patches | 2 replies | Superseded |
Patches in v4 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/23 | drivers/net: remove unused include in dpaa and dpaa2drivers/ drivers/ | +0 | 1 reply | |
| 2/23 | ethdev: use DPDK byte order conversionlib/ | +3 | 3 replies | |
| 3/23 | net/ixgbe: remove experimental FDIR APIdrivers/ drivers/ drivers/ +1 more | +0 | 1 reply | |
| 4/23 | net/i40e: remove experimental FDIR APIdoc/ drivers/ drivers/ +4 more | +3 | 0 replies | |
| 5/23 | app/testpmd: remove support for flow directorapp/ app/ app/ +2 more | +17 | 1 reply | |
| 6/23 | app/testpmd: move str_to_flowtype to i40eapp/ app/ drivers/ | +51 | 1 reply | |
| 7/23 | app/test: include headers directlyapp/ app/ app/ +1 more | +19 | 1 reply | |
| 8/23 | gro: include headers directlylib/ lib/ lib/ +2 more | +41 | 1 reply | |
| 9/23 | crypto/dpaa_sec: include UDP headerdrivers/ | +2 | 1 reply | |
| 10/23 | net/gve: include UDP, SCTP and TCP headersdrivers/ | +12 | 0 replies | |
| 11/23 | net/nfp: break implicit dependency on rte_eth_ctrl.hdrivers/ drivers/ | +7 | 0 replies | |
| 12/23 | net/mana: include used network headersdrivers/ drivers/ | +26 | 0 replies | |
| 13/23 | node: get UDP headerlib/ | +9 | 0 replies | |
| 14/23 | net/rnp: include network headersdrivers/ | +6 | 0 replies | |
| 15/23 | net/r8169: get network headersdrivers/ | +13 | 0 replies | |
| 16/23 | net/ngbe: include network protocol headersdrivers/ | +4 | 0 replies | |
| 17/23 | examples: include network headersexamples/ examples/ examples/ | +5 | 1 reply | |
| 18/23 | net/mlx5: include rte_flow as neededdrivers/ drivers/ drivers/ +2 more | +5 | 0 replies | |
| 19/23 | net/sfc: include rte_flowdrivers/ | +1 | 0 replies | |
| 20/23 | net/intel/common: include network headersdrivers/ | +3 | 1 reply | |
| 21/23 | net/enetfec: add missing sys/types.h includedrivers/ | +2 | 0 replies | |
| 22/23 | ethdev, drivers: isolate flow directordoc/ drivers/ drivers/ +19 more | +71 | 1 reply | |
| 23/23 | doc: add release note about rte_ethdev changesdoc/ | +24 | 1 reply |
Reviews trailers per patch
12 of 23 patches have a Reviewed-by or Acked-by.
| Patch | Joshua Washington | Long Li | Hemant Agrawal | Marat Khalili | Bruce Richardson |
|---|---|---|---|---|---|
| 1/23 | A-b | ||||
| 2/23 | A-b | ||||
| 3/23 | |||||
| 4/23 | |||||
| 5/23 | A-b | ||||
| 6/23 | A-b | ||||
| 7/23 | A-b | ||||
| 8/23 | A-b | ||||
| 9/23 | A-b | ||||
| 10/23 | R-b | ||||
| 11/23 | |||||
| 12/23 | R-b | ||||
| 13/23 | |||||
| 14/23 | |||||
| 15/23 | |||||
| 16/23 | |||||
| 17/23 | A-b | ||||
| 18/23 | |||||
| 19/23 | |||||
| 20/23 | A-b | ||||
| 21/23 | |||||
| 22/23 | A-b | ||||
| 23/23 |
Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 5 reviewers.
Cover letter [PATCH v4 00/23] ethdev: refactor remaining uses of flow director
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
app/test-eventdev/test_pipeline_common.h | 1 +
app/test-pmd/cmdline.c | 21 +-
app/test-pmd/config.c | 225 ------------------
app/test-pmd/testpmd.h | 6 -
app/test/test_bpf.c | 20 +-
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/nics/i40e.rst | 46 ----
doc/guides/rel_notes/release_26_11.rst | 24 ++
doc/guides/testpmd_app_ug/intro.rst | 4 +-
doc/guides/testpmd_app_ug/testpmd_funcs.rst | 56 +----
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 | 13 +-
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/i40e_testpmd.c | 51 ++++
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 | 26 +-
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 | 4 +-
drivers/net/ngbe/ngbe_rxtx.c | 4 +
drivers/net/r8169/r8169_rxtx.c | 19 +-
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} | 62 ++++-
lib/ethdev/meson.build | 2 +-
lib/ethdev/rte_ethdev.h | 13 +-
lib/ethdev/sff_8472.c | 4 +-
lib/gro/gro_tcp4.c | 9 +-
lib/gro/gro_tcp6.c | 9 +-
lib/gro/gro_vxlan_tcp4.c | 10 +-
lib/gro/gro_vxlan_udp4.c | 9 +-
lib/gro/rte_gro.c | 9 +-
lib/node/udp4_input.c | 17 +-
71 files changed, 324 insertions(+), 848 deletions(-)
rename lib/ethdev/{rte_eth_ctrl.h => ethdev_fdir.h} (90%)Signature · 1 line
2.53.0