Acked-by: Pablo de Lara Guarch <pablo.de.lara.guarch at intel.com>
> -----Original Message-----
> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Cristian Dumitrescu
> Sent: Wednesday, June 04, 2014 7:08 PM
> To: dev at dpdk.org
> Subject: [dpdk-dev] [v2 00/23] Packet Framework
>
> (Version 2 changes are exclusively style changes (checkpatch.pl) and patch
> consolidation, no functional change)
>
> Intel DPDK Packet Framework provides a standard methodology (logically
> similar to OpenFlow) for rapid development of complex packet processing
> pipelines out of ports, tables and actions.
>
> A pipeline is constructed by connecting its input ports to its output ports
> through a chain of lookup tables. As result of lookup operation into the
> current table, one of the table entries (or the default table entry, in case
> of
> lookup miss) is identified to provide the actions to be executed on the
> current packet and the associated action meta-data. The behavior of user
> actions is defined through the configurable table action handler, while the
> reserved actions define the next hop for the current packet (either another
> table, an output port or packet drop) and are handled transparently by the
> framework.
>
> Three new Intel DPDK libraries are introduced for Packet Framework:
> librte_port, librte_table, librte_pipeline. Please check the Intel DPDK
> Programmer's Guide for full description of the Packet Framework design.
>
> Two sample applications are provided for Packet Framework: app/test-
> pipeline and examples/ip_pipeline. Please check the Intel Sample Apps Guide
> for a detailed description of how these sample apps.
>
> Cristian Dumitrescu (23):
> librte_lpm: rule_is_present
> mbuf: meta-data
> Packet Framework librte_port: Port API
> Packet Framework librte_port: ethdev ports
> Packet Framework librte_port: ring ports
> Packet Framework librte_port: IPv4 frag port
> Packet Framework librte_port: IPv4 reassembly
> Packet Framework librte_port: hierarchical scheduler port
> Packet Framework librte_port: Source/Sink ports
> Packet Framework librte_port: Build infrastructure
> Packet Framework librte_table: Table API
> Packet Framework librte_table: LPM IPv4 table
> Packet Framework librte_table: LPM IPv6 table
> Packet Framework librte_table: ACL table
> Packet Framework librte_table: Hash tables
> Packet Framework librte_table: array table
> Packet Framework librte_table: Stub table
> Packet Framework librte_table: Build infrastructure
> Packet Framework librte_pipeline: Pipeline
> librte_cfgfile: interpret config files
> Packet Framework performance application
> Packet Framework IPv4 pipeline sample app
> Packet Framework unit tests
>
> app/Makefile | 1 +
> app/test-pipeline/Makefile | 66 +
> app/test-pipeline/config.c | 248 +++
> app/test-pipeline/init.c | 295 +++
> app/test-pipeline/main.c | 180 ++
> app/test-pipeline/main.h | 148 ++
> app/test-pipeline/pipeline_acl.c | 278 +++
> app/test-pipeline/pipeline_hash.c | 487 +++++
> app/test-pipeline/pipeline_lpm.c | 196 ++
> app/test-pipeline/pipeline_lpm_ipv6.c | 200 ++
> app/test-pipeline/pipeline_stub.c | 165 ++
> app/test-pipeline/runtime.c | 185 ++
> app/test/Makefile | 6 +
> app/test/commands.c | 4 +-
> app/test/test.h | 1 +
> app/test/test_table.c | 220 +++
> app/test/test_table.h | 204 ++
> app/test/test_table_acl.c | 593 ++++++
> app/test/test_table_acl.h | 35 +
> app/test/test_table_combined.c | 784 ++++++++
> app/test/test_table_combined.h | 55 +
> app/test/test_table_pipeline.c | 603 ++++++
> app/test/test_table_pipeline.h | 35 +
> app/test/test_table_ports.c | 224 +++
> app/test/test_table_ports.h | 42 +
> app/test/test_table_tables.c | 907 +++++++++
> app/test/test_table_tables.h | 50 +
> config/common_bsdapp | 25 +
> config/common_linuxapp | 24 +
> doc/doxy-api-index.md | 17 +
> doc/doxy-api.conf | 3 +
> examples/ip_pipeline/Makefile | 67 +
> examples/ip_pipeline/cmdline.c | 1976
> ++++++++++++++++++++
> examples/ip_pipeline/config.c | 420 +++++
> examples/ip_pipeline/init.c | 614 ++++++
> examples/ip_pipeline/ip_pipeline.cfg | 56 +
> examples/ip_pipeline/ip_pipeline.sh | 18 +
> examples/ip_pipeline/main.c | 171 ++
> examples/ip_pipeline/main.h | 306 +++
> examples/ip_pipeline/pipeline_firewall.c | 313 ++++
> .../ip_pipeline/pipeline_flow_classification.c | 306 +++
> examples/ip_pipeline/pipeline_ipv4_frag.c | 184 ++
> examples/ip_pipeline/pipeline_ipv4_ras.c | 181 ++
> examples/ip_pipeline/pipeline_passthrough.c | 213 +++
> examples/ip_pipeline/pipeline_routing.c | 474 +++++
> examples/ip_pipeline/pipeline_rx.c | 385 ++++
> examples/ip_pipeline/pipeline_tx.c | 283 +++
> lib/Makefile | 4 +
> lib/librte_cfgfile/Makefile | 53 +
> lib/librte_cfgfile/rte_cfgfile.c | 354 ++++
> lib/librte_cfgfile/rte_cfgfile.h | 195 ++
> lib/librte_eal/common/include/rte_hexdump.h | 2 +
> lib/librte_eal/common/include/rte_log.h | 3 +
> lib/librte_lpm/rte_lpm.c | 29 +
> lib/librte_lpm/rte_lpm.h | 19 +
> lib/librte_lpm/rte_lpm6.c | 31 +
> lib/librte_lpm/rte_lpm6.h | 19 +
> lib/librte_mbuf/rte_mbuf.h | 25 +
> lib/librte_pipeline/Makefile | 54 +
> lib/librte_pipeline/rte_pipeline.c | 1373 ++++++++++++++
> lib/librte_pipeline/rte_pipeline.h | 664 +++++++
> lib/librte_port/Makefile | 72 +
> lib/librte_port/ipv4_frag_tbl.h | 403 ++++
> lib/librte_port/ipv4_rsmbl.h | 429 +++++
> lib/librte_port/rte_ipv4_frag.h | 253 +++
> lib/librte_port/rte_port.h | 190 ++
> lib/librte_port/rte_port_ethdev.c | 305 +++
> lib/librte_port/rte_port_ethdev.h | 86 +
> lib/librte_port/rte_port_frag.c | 235 +++
> lib/librte_port/rte_port_frag.h | 94 +
> lib/librte_port/rte_port_ras.c | 256 +++
> lib/librte_port/rte_port_ras.h | 83 +
> lib/librte_port/rte_port_ring.c | 237 +++
> lib/librte_port/rte_port_ring.h | 82 +
> lib/librte_port/rte_port_sched.c | 239 +++
> lib/librte_port/rte_port_sched.h | 82 +
> lib/librte_port/rte_port_source_sink.c | 158 ++
> lib/librte_port/rte_port_source_sink.h | 70 +
> lib/librte_table/Makefile | 85 +
> lib/librte_table/rte_lru.h | 213 +++
> lib/librte_table/rte_table.h | 202 ++
> lib/librte_table/rte_table_acl.c | 490 +++++
> lib/librte_table/rte_table_acl.h | 95 +
> lib/librte_table/rte_table_array.c | 204 ++
> lib/librte_table/rte_table_array.h | 76 +
> lib/librte_table/rte_table_hash.h | 350 ++++
> lib/librte_table/rte_table_hash_ext.c | 1122 +++++++++++
> lib/librte_table/rte_table_hash_key16.c | 1100 +++++++++++
> lib/librte_table/rte_table_hash_key32.c | 1120 +++++++++++
> lib/librte_table/rte_table_hash_key8.c | 1398 ++++++++++++++
> lib/librte_table/rte_table_hash_lru.c | 1065 +++++++++++
> lib/librte_table/rte_table_lpm.c | 347 ++++
> lib/librte_table/rte_table_lpm.h | 115 ++
> lib/librte_table/rte_table_lpm_ipv6.c | 361 ++++
> lib/librte_table/rte_table_lpm_ipv6.h | 119 ++
> lib/librte_table/rte_table_stub.c | 65 +
> lib/librte_table/rte_table_stub.h | 62 +
> mk/rte.app.mk | 16 +
> 98 files changed, 26951 insertions(+), 1 deletions(-)
> create mode 100644 app/test-pipeline/Makefile
> create mode 100644 app/test-pipeline/config.c
> create mode 100644 app/test-pipeline/init.c
> create mode 100644 app/test-pipeline/main.c
> create mode 100644 app/test-pipeline/main.h
> create mode 100644 app/test-pipeline/pipeline_acl.c
> create mode 100644 app/test-pipeline/pipeline_hash.c
> create mode 100644 app/test-pipeline/pipeline_lpm.c
> create mode 100644 app/test-pipeline/pipeline_lpm_ipv6.c
> create mode 100644 app/test-pipeline/pipeline_stub.c
> create mode 100644 app/test-pipeline/runtime.c
> create mode 100644 app/test/test_table.c
> create mode 100644 app/test/test_table.h
> create mode 100644 app/test/test_table_acl.c
> create mode 100644 app/test/test_table_acl.h
> create mode 100644 app/test/test_table_combined.c
> create mode 100644 app/test/test_table_combined.h
> create mode 100644 app/test/test_table_pipeline.c
> create mode 100644 app/test/test_table_pipeline.h
> create mode 100644 app/test/test_table_ports.c
> create mode 100644 app/test/test_table_ports.h
> create mode 100644 app/test/test_table_tables.c
> create mode 100644 app/test/test_table_tables.h
> create mode 100644 examples/ip_pipeline/Makefile
> create mode 100644 examples/ip_pipeline/cmdline.c
> create mode 100644 examples/ip_pipeline/config.c
> create mode 100644 examples/ip_pipeline/init.c
> create mode 100644 examples/ip_pipeline/ip_pipeline.cfg
> create mode 100644 examples/ip_pipeline/ip_pipeline.sh
> create mode 100644 examples/ip_pipeline/main.c
> create mode 100644 examples/ip_pipeline/main.h
> create mode 100644 examples/ip_pipeline/pipeline_firewall.c
> create mode 100644 examples/ip_pipeline/pipeline_flow_classification.c
> create mode 100644 examples/ip_pipeline/pipeline_ipv4_frag.c
> create mode 100644 examples/ip_pipeline/pipeline_ipv4_ras.c
> create mode 100644 examples/ip_pipeline/pipeline_passthrough.c
> create mode 100644 examples/ip_pipeline/pipeline_routing.c
> create mode 100644 examples/ip_pipeline/pipeline_rx.c
> create mode 100644 examples/ip_pipeline/pipeline_tx.c
> create mode 100644 lib/librte_cfgfile/Makefile
> create mode 100644 lib/librte_cfgfile/rte_cfgfile.c
> create mode 100644 lib/librte_cfgfile/rte_cfgfile.h
> create mode 100644 lib/librte_pipeline/Makefile
> create mode 100644 lib/librte_pipeline/rte_pipeline.c
> create mode 100644 lib/librte_pipeline/rte_pipeline.h
> create mode 100644 lib/librte_port/Makefile
> create mode 100644 lib/librte_port/ipv4_frag_tbl.h
> create mode 100644 lib/librte_port/ipv4_rsmbl.h
> create mode 100644 lib/librte_port/rte_ipv4_frag.h
> create mode 100644 lib/librte_port/rte_port.h
> create mode 100644 lib/librte_port/rte_port_ethdev.c
> create mode 100644 lib/librte_port/rte_port_ethdev.h
> create mode 100644 lib/librte_port/rte_port_frag.c
> create mode 100644 lib/librte_port/rte_port_frag.h
> create mode 100644 lib/librte_port/rte_port_ras.c
> create mode 100644 lib/librte_port/rte_port_ras.h
> create mode 100644 lib/librte_port/rte_port_ring.c
> create mode 100644 lib/librte_port/rte_port_ring.h
> create mode 100644 lib/librte_port/rte_port_sched.c
> create mode 100644 lib/librte_port/rte_port_sched.h
> create mode 100644 lib/librte_port/rte_port_source_sink.c
> create mode 100644 lib/librte_port/rte_port_source_sink.h
> create mode 100644 lib/librte_table/Makefile
> create mode 100644 lib/librte_table/rte_lru.h
> create mode 100644 lib/librte_table/rte_table.h
> create mode 100644 lib/librte_table/rte_table_acl.c
> create mode 100644 lib/librte_table/rte_table_acl.h
> create mode 100644 lib/librte_table/rte_table_array.c
> create mode 100644 lib/librte_table/rte_table_array.h
> create mode 100644 lib/librte_table/rte_table_hash.h
> create mode 100644 lib/librte_table/rte_table_hash_ext.c
> create mode 100644 lib/librte_table/rte_table_hash_key16.c
> create mode 100644 lib/librte_table/rte_table_hash_key32.c
> create mode 100644 lib/librte_table/rte_table_hash_key8.c
> create mode 100644 lib/librte_table/rte_table_hash_lru.c
> create mode 100644 lib/librte_table/rte_table_lpm.c
> create mode 100644 lib/librte_table/rte_table_lpm.h
> create mode 100644 lib/librte_table/rte_table_lpm_ipv6.c
> create mode 100644 lib/librte_table/rte_table_lpm_ipv6.h
> create mode 100644 lib/librte_table/rte_table_stub.c
> create mode 100644 lib/librte_table/rte_table_stub.h
>
> --
> 1.7.7.6