On Fri, 24 Jul 2026 at 18:45, Stephen Hemminger <[email protected]> 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? -- David Marchand

