[PATCH 0/6] remove legacy Packet Framework API
Stephen Hemminger
stephen at networkplumber.org
Sat Jul 25 15:36:26 CEST 2026
On Sat, 25 Jul 2026 09:54:48 +0200
David Marchand <david.marchand at redhat.com> wrote:
> On Fri, 24 Jul 2026 at 18:45, Stephen Hemminger
> <stephen at networkplumber.org> wrote:
> >
> > The legacy Packet Framework APIs were announced for removal in the
> > 24.11 release but the removal never happened:
> >
> > * pipeline: The pipeline library legacy API (functions rte_pipeline_*)
> > * table: The table library legacy API (functions rte_table_*)
> > * port: The port library legacy API (functions rte_port_*)
> >
> > Do the removal now, in the 26.11 ABI window. The SWX API in the same
> > libraries (rte_swx_*) is unaffected and remains the Packet Framework
> > API. The softnic driver and the pipeline example already use only the
> > SWX API.
> >
> > The applications built on the legacy API (test-pipeline, ip_pipeline)
> > and the unit tests are removed first, then the legacy half of each
> > library, pipeline before table before port to follow the dependency
> > chain. Library dependencies and the programmer's guide are trimmed
> > accordingly.
> >
> > Follow-up candidates, kept out of this series: the stale comments in
> > lib/ethdev/ethdev_trace.h still refer to examples/ip_pipeline, and
> > struct rte_pipeline_acl_rule in the removed rte_table_acl.c was only
> > a local name.
> >
> >
> > Stephen Hemminger (6):
> > app/test: remove packet framework tests
> > app/test-pipeline: remove application
> > examples/ip_pipeline: remove example
> > pipeline: remove legacy API
> > table: remove legacy API
> > port: remove legacy API
> >
> > MAINTAINERS | 5 -
> > app/meson.build | 1 -
> > app/test-pipeline/config.c | 230 -
> > app/test-pipeline/init.c | 273 -
> > app/test-pipeline/main.c | 188 -
> > app/test-pipeline/main.h | 132 -
> > app/test-pipeline/meson.build | 21 -
> > app/test-pipeline/pipeline_acl.c | 251 -
> > app/test-pipeline/pipeline_hash.c | 471 --
> > app/test-pipeline/pipeline_lpm.c | 175 -
> > app/test-pipeline/pipeline_lpm_ipv6.c | 168 -
> > app/test-pipeline/pipeline_stub.c | 137 -
> > app/test-pipeline/runtime.c | 160 -
> > app/test/meson.build | 6 -
> > app/test/test_table.c | 209 -
> > app/test/test_table.h | 184 -
> > app/test/test_table_acl.c | 728 --
> > app/test/test_table_acl.h | 6 -
> > app/test/test_table_combined.c | 846 --
> > app/test/test_table_combined.h | 27 -
> > app/test/test_table_pipeline.c | 575 --
> > app/test/test_table_pipeline.h | 6 -
> > app/test/test_table_ports.c | 195 -
> > app/test/test_table_ports.h | 13 -
> > app/test/test_table_tables.c | 1058 ---
> > app/test/test_table_tables.h | 22 -
> > doc/api/doxy-api-index.md | 17 -
> > doc/guides/nics/softnic.rst | 3 +-
> > doc/guides/prog_guide/img/figure32.png | Bin 11603 -> 0 bytes
> > doc/guides/prog_guide/img/figure33.png | Bin 65216 -> 0 bytes
> > doc/guides/prog_guide/img/figure34.png | Bin 11581 -> 0 bytes
> > doc/guides/prog_guide/img/figure35.png | Bin 75012 -> 0 bytes
> > doc/guides/prog_guide/img/figure37.png | Bin 6934 -> 0 bytes
> > doc/guides/prog_guide/img/figure38.png | Bin 7372 -> 0 bytes
> > doc/guides/prog_guide/img/figure39.png | Bin 55986 -> 0 bytes
> > doc/guides/prog_guide/packet_framework.rst | 1146 +--
> > doc/guides/rel_notes/deprecation.rst | 15 -
> > doc/guides/rel_notes/release_26_11.rst | 17 +
> > .../sample_app_ug/img/test_pipeline_app.png | Bin 67410 -> 0 bytes
> > doc/guides/sample_app_ug/index.rst | 2 -
> > doc/guides/sample_app_ug/ip_pipeline.rst | 531 --
> > doc/guides/sample_app_ug/test_pipeline.rst | 237 -
> > examples/ip_pipeline/Makefile | 60 -
> > examples/ip_pipeline/action.c | 391 -
> > examples/ip_pipeline/action.h | 78 -
> > examples/ip_pipeline/cli.c | 6791 -----------------
> > examples/ip_pipeline/cli.h | 18 -
> > examples/ip_pipeline/common.h | 12 -
> > examples/ip_pipeline/conn.c | 330 -
> > examples/ip_pipeline/conn.h | 47 -
> > examples/ip_pipeline/cryptodev.c | 160 -
> > examples/ip_pipeline/cryptodev.h | 46 -
> > examples/ip_pipeline/examples/firewall.cli | 59 -
> > examples/ip_pipeline/examples/flow.cli | 60 -
> > examples/ip_pipeline/examples/flow_crypto.cli | 57 -
> > examples/ip_pipeline/examples/l2fwd.cli | 51 -
> > examples/ip_pipeline/examples/route.cli | 60 -
> > examples/ip_pipeline/examples/route_ecmp.cli | 57 -
> > examples/ip_pipeline/examples/rss.cli | 112 -
> > examples/ip_pipeline/examples/tap.cli | 66 -
> > examples/ip_pipeline/link.c | 270 -
> > examples/ip_pipeline/link.h | 66 -
> > examples/ip_pipeline/main.c | 260 -
> > examples/ip_pipeline/mempool.c | 82 -
> > examples/ip_pipeline/mempool.h | 40 -
> > examples/ip_pipeline/meson.build | 30 -
> > examples/ip_pipeline/parser.c | 506 --
> > examples/ip_pipeline/parser.h | 56 -
> > examples/ip_pipeline/pipeline.c | 1078 ---
> > examples/ip_pipeline/pipeline.h | 425 --
> > examples/ip_pipeline/swq.c | 76 -
> > examples/ip_pipeline/swq.h | 37 -
> > examples/ip_pipeline/tap.c | 102 -
> > examples/ip_pipeline/tap.h | 29 -
> > examples/ip_pipeline/thread.c | 3137 --------
> > examples/ip_pipeline/thread.h | 24 -
> > examples/ip_pipeline/tmgr.c | 248 -
> > examples/ip_pipeline/tmgr.h | 74 -
> > examples/meson.build | 1 -
> > lib/pipeline/meson.build | 8 +-
> > lib/pipeline/rte_pipeline.c | 1640 ----
> > lib/pipeline/rte_pipeline.h | 840 --
> > lib/pipeline/rte_port_in_action.c | 539 --
> > lib/pipeline/rte_port_in_action.h | 311 -
> > lib/pipeline/rte_table_action.c | 3483 ---------
> > lib/pipeline/rte_table_action.h | 1137 ---
> > lib/port/meson.build | 22 +-
> > lib/port/port_log.c | 7 -
> > lib/port/port_log.h | 11 -
> > lib/port/rte_port.h | 223 -
> > lib/port/rte_port_ethdev.c | 530 --
> > lib/port/rte_port_ethdev.h | 75 -
> > lib/port/rte_port_eventdev.c | 590 --
> > lib/port/rte_port_eventdev.h | 94 -
> > lib/port/rte_port_fd.c | 524 --
> > lib/port/rte_port_fd.h | 74 -
> > lib/port/rte_port_frag.c | 280 -
> > lib/port/rte_port_frag.h | 70 -
> > lib/port/rte_port_ras.c | 336 -
> > lib/port/rte_port_ras.h | 58 -
> > lib/port/rte_port_ring.c | 796 --
> > lib/port/rte_port_ring.h | 91 -
> > lib/port/rte_port_sched.c | 298 -
> > lib/port/rte_port_sched.h | 52 -
> > lib/port/rte_port_source_sink.c | 616 --
> > lib/port/rte_port_source_sink.h | 57 -
> > lib/port/rte_port_sym_crypto.c | 558 --
> > lib/port/rte_port_sym_crypto.h | 92 -
> > lib/table/meson.build | 30 +-
> > lib/table/rte_lru.h | 85 -
> > lib/table/rte_lru_arm64.h | 61 -
> > lib/table/rte_lru_x86.h | 96 -
> > lib/table/rte_table.h | 263 -
> > lib/table/rte_table_acl.c | 795 --
> > lib/table/rte_table_acl.h | 65 -
> > lib/table/rte_table_array.c | 210 -
> > lib/table/rte_table_array.h | 46 -
> > lib/table/rte_table_hash.h | 106 -
> > lib/table/rte_table_hash_cuckoo.c | 327 -
> > lib/table/rte_table_hash_cuckoo.h | 57 -
> > lib/table/rte_table_hash_ext.c | 1011 ---
> > lib/table/rte_table_hash_func.h | 263 -
> > lib/table/rte_table_hash_func_arm64.h | 21 -
> > lib/table/rte_table_hash_key16.c | 1190 ---
> > lib/table/rte_table_hash_key32.c | 1223 ---
> > lib/table/rte_table_hash_key8.c | 1157 ---
> > lib/table/rte_table_hash_lru.c | 959 ---
> > lib/table/rte_table_lpm.c | 369 -
> > lib/table/rte_table_lpm.h | 94 -
> > lib/table/rte_table_lpm_ipv6.c | 370 -
> > lib/table/rte_table_lpm_ipv6.h | 95 -
> > lib/table/rte_table_stub.c | 95 -
> > lib/table/rte_table_stub.h | 30 -
> > lib/table/table_log.c | 7 -
> > lib/table/table_log.h | 11 -
> > 135 files changed, 27 insertions(+), 45472 deletions(-)
> > delete mode 100644 app/test-pipeline/config.c
> > delete mode 100644 app/test-pipeline/init.c
> > delete mode 100644 app/test-pipeline/main.c
> > delete mode 100644 app/test-pipeline/main.h
> > delete mode 100644 app/test-pipeline/meson.build
> > delete mode 100644 app/test-pipeline/pipeline_acl.c
> > delete mode 100644 app/test-pipeline/pipeline_hash.c
> > delete mode 100644 app/test-pipeline/pipeline_lpm.c
> > delete mode 100644 app/test-pipeline/pipeline_lpm_ipv6.c
> > delete mode 100644 app/test-pipeline/pipeline_stub.c
> > delete mode 100644 app/test-pipeline/runtime.c
> > delete mode 100644 app/test/test_table.c
> > delete mode 100644 app/test/test_table.h
> > delete mode 100644 app/test/test_table_acl.c
> > delete mode 100644 app/test/test_table_acl.h
> > delete mode 100644 app/test/test_table_combined.c
> > delete mode 100644 app/test/test_table_combined.h
> > delete mode 100644 app/test/test_table_pipeline.c
> > delete mode 100644 app/test/test_table_pipeline.h
> > delete mode 100644 app/test/test_table_ports.c
> > delete mode 100644 app/test/test_table_ports.h
> > delete mode 100644 app/test/test_table_tables.c
> > delete mode 100644 app/test/test_table_tables.h
> > delete mode 100644 doc/guides/prog_guide/img/figure32.png
> > delete mode 100644 doc/guides/prog_guide/img/figure33.png
> > delete mode 100644 doc/guides/prog_guide/img/figure34.png
> > delete mode 100644 doc/guides/prog_guide/img/figure35.png
> > delete mode 100644 doc/guides/prog_guide/img/figure37.png
> > delete mode 100644 doc/guides/prog_guide/img/figure38.png
> > delete mode 100644 doc/guides/prog_guide/img/figure39.png
> > delete mode 100644 doc/guides/sample_app_ug/img/test_pipeline_app.png
> > delete mode 100644 doc/guides/sample_app_ug/ip_pipeline.rst
> > delete mode 100644 doc/guides/sample_app_ug/test_pipeline.rst
> > delete mode 100644 examples/ip_pipeline/Makefile
> > delete mode 100644 examples/ip_pipeline/action.c
> > delete mode 100644 examples/ip_pipeline/action.h
> > delete mode 100644 examples/ip_pipeline/cli.c
> > delete mode 100644 examples/ip_pipeline/cli.h
> > delete mode 100644 examples/ip_pipeline/common.h
> > delete mode 100644 examples/ip_pipeline/conn.c
> > delete mode 100644 examples/ip_pipeline/conn.h
> > delete mode 100644 examples/ip_pipeline/cryptodev.c
> > delete mode 100644 examples/ip_pipeline/cryptodev.h
> > delete mode 100644 examples/ip_pipeline/examples/firewall.cli
> > delete mode 100644 examples/ip_pipeline/examples/flow.cli
> > delete mode 100644 examples/ip_pipeline/examples/flow_crypto.cli
> > delete mode 100644 examples/ip_pipeline/examples/l2fwd.cli
> > delete mode 100644 examples/ip_pipeline/examples/route.cli
> > delete mode 100644 examples/ip_pipeline/examples/route_ecmp.cli
> > delete mode 100644 examples/ip_pipeline/examples/rss.cli
> > delete mode 100644 examples/ip_pipeline/examples/tap.cli
> > delete mode 100644 examples/ip_pipeline/link.c
> > delete mode 100644 examples/ip_pipeline/link.h
> > delete mode 100644 examples/ip_pipeline/main.c
> > delete mode 100644 examples/ip_pipeline/mempool.c
> > delete mode 100644 examples/ip_pipeline/mempool.h
> > delete mode 100644 examples/ip_pipeline/meson.build
> > delete mode 100644 examples/ip_pipeline/parser.c
> > delete mode 100644 examples/ip_pipeline/parser.h
> > delete mode 100644 examples/ip_pipeline/pipeline.c
> > delete mode 100644 examples/ip_pipeline/pipeline.h
> > delete mode 100644 examples/ip_pipeline/swq.c
> > delete mode 100644 examples/ip_pipeline/swq.h
> > delete mode 100644 examples/ip_pipeline/tap.c
> > delete mode 100644 examples/ip_pipeline/tap.h
> > delete mode 100644 examples/ip_pipeline/thread.c
> > delete mode 100644 examples/ip_pipeline/thread.h
> > delete mode 100644 examples/ip_pipeline/tmgr.c
> > delete mode 100644 examples/ip_pipeline/tmgr.h
> > delete mode 100644 lib/pipeline/rte_pipeline.c
> > delete mode 100644 lib/pipeline/rte_pipeline.h
> > delete mode 100644 lib/pipeline/rte_port_in_action.c
> > delete mode 100644 lib/pipeline/rte_port_in_action.h
> > delete mode 100644 lib/pipeline/rte_table_action.c
> > delete mode 100644 lib/pipeline/rte_table_action.h
> > delete mode 100644 lib/port/port_log.c
> > delete mode 100644 lib/port/port_log.h
> > delete mode 100644 lib/port/rte_port.h
> > delete mode 100644 lib/port/rte_port_ethdev.c
> > delete mode 100644 lib/port/rte_port_ethdev.h
> > delete mode 100644 lib/port/rte_port_eventdev.c
> > delete mode 100644 lib/port/rte_port_eventdev.h
> > delete mode 100644 lib/port/rte_port_fd.c
> > delete mode 100644 lib/port/rte_port_fd.h
> > delete mode 100644 lib/port/rte_port_frag.c
> > delete mode 100644 lib/port/rte_port_frag.h
> > delete mode 100644 lib/port/rte_port_ras.c
> > delete mode 100644 lib/port/rte_port_ras.h
> > delete mode 100644 lib/port/rte_port_ring.c
> > delete mode 100644 lib/port/rte_port_ring.h
> > delete mode 100644 lib/port/rte_port_sched.c
> > delete mode 100644 lib/port/rte_port_sched.h
> > delete mode 100644 lib/port/rte_port_source_sink.c
> > delete mode 100644 lib/port/rte_port_source_sink.h
> > delete mode 100644 lib/port/rte_port_sym_crypto.c
> > delete mode 100644 lib/port/rte_port_sym_crypto.h
> > delete mode 100644 lib/table/rte_lru.h
> > delete mode 100644 lib/table/rte_lru_arm64.h
> > delete mode 100644 lib/table/rte_lru_x86.h
> > delete mode 100644 lib/table/rte_table.h
> > delete mode 100644 lib/table/rte_table_acl.c
> > delete mode 100644 lib/table/rte_table_acl.h
> > delete mode 100644 lib/table/rte_table_array.c
> > delete mode 100644 lib/table/rte_table_array.h
> > delete mode 100644 lib/table/rte_table_hash.h
> > delete mode 100644 lib/table/rte_table_hash_cuckoo.c
> > delete mode 100644 lib/table/rte_table_hash_cuckoo.h
> > delete mode 100644 lib/table/rte_table_hash_ext.c
> > delete mode 100644 lib/table/rte_table_hash_func.h
> > delete mode 100644 lib/table/rte_table_hash_func_arm64.h
> > delete mode 100644 lib/table/rte_table_hash_key16.c
> > delete mode 100644 lib/table/rte_table_hash_key32.c
> > delete mode 100644 lib/table/rte_table_hash_key8.c
> > delete mode 100644 lib/table/rte_table_hash_lru.c
> > delete mode 100644 lib/table/rte_table_lpm.c
> > delete mode 100644 lib/table/rte_table_lpm.h
> > delete mode 100644 lib/table/rte_table_lpm_ipv6.c
> > delete mode 100644 lib/table/rte_table_lpm_ipv6.h
> > delete mode 100644 lib/table/rte_table_stub.c
> > delete mode 100644 lib/table/rte_table_stub.h
> > delete mode 100644 lib/table/table_log.c
> > delete mode 100644 lib/table/table_log.h
>
> Sorry, it seems this series (and only this series iiuc) fell through
> the cracks while patchwork and other dpdk.org services were under
> heavy load...
> Could you resend?
>
>
I suspect there maybe feedbacks, will send again on Monday.
More information about the dev
mailing list